<?php
error_reporting( E_ALL | E_STRICT );
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);

define('APPLICATION_TIME_START', microtime(true));
// для точного определения путей при cli - cron запросах
chdir(dirname(__FILE__));

################################################################################
#
# Ручная настройка путей. В том случаи!!! если нужны не стандартные настройки
# расположения библиотек.
#
################################################################################

// путь к директории library
define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library'));

// Путь к другим Библиотекам
define('LIBRARY_OTHER_PATH', realpath(LIBRARY_PATH .  '/Other'));

// путь к директории application
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// путь к директории public полный
define('PUBLIC_HTML_PATH', realpath(dirname(__FILE__)));


################################################################################
#
# Конец ручной настройки.
#
################################################################################

    // логируем все ошибки php
    if(false === is_dir(APPLICATION_PATH . '/temp/log')) {
        mkdir(APPLICATION_PATH . '/temp/log');
    }

ini_set('log_errors', 1);
ini_set('log_errors_max_len', 1024);
ini_set('error_log', APPLICATION_PATH . '/temp/log/_php_error_log');

// конфиг системы
$config = parse_ini_file(APPLICATION_PATH . '/configs/application.ini', true);

// путя для include_path
$arrayPaths = array();

// путь к библиотекам
$arrayPaths[] = LIBRARY_PATH;

// путь к модулям
define('MODULE_PATH', APPLICATION_PATH . '/modules');

// путь к другим библиотекам
$arrayPaths[] = LIBRARY_OTHER_PATH;

// Ensure library/ is on include_path
$arrayPaths[] = get_include_path();
set_include_path(implode(PATH_SEPARATOR, $arrayPaths));

/** Включаем авто загрузку обьектов */
require_once 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Arm_');
$autoloader->setFallbackAutoloader(true);
$autoloader->pushAutoloader(new Arm_Loader_Model());

    // Состояние работы приложения.
    if(Arm_Core::isCliRequest()) {
        define('APPLICATION_ENV', 'cli');
    } else {
        // проверка установлена система или нет
        if(is_file(APPLICATION_PATH . '/installlock')) {
            // Считываем сотояния приложения с конфига.
            define('APPLICATION_ENV', $config['environment']);
            // кеширования страниц
            Arm_Cache::getInstance()->getFrontendPage();
        } else {
            define('APPLICATION_ENV',  'install');
        }

    }

// Create application, bootstrap, and run
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini');
$application->bootstrap()->run();
